On Line Analytical Processing (OLAP) is focused on analysis of business data. One of the key points of OLAP is that the data is viewed multidimensionally. This presents a view to the business user that is intuitive and easy to comprehend. It also permits aggregation and more complex derivations to be defined within the multidimensional objects (often referred to as cubes). Business analysts interact with the multidimensional data in the OLAP database using a variety of client tools. Historically, tools such as Excel and multidimensional data browsers have been used for this purpose. In recent years, however, there has been a growing trend to use standard web browsers such as Internet Explorer or Netscape to access web pages containing the reports, analyses and visualizations based on the data in the OLAP database. The advantage of using a web browser is that no additional software need be installed on the client computer. The application can be administered centrally on the server and accessed from anywhere that permits standard internet access.
There are many ways that web servers can build on-demand web pages containing data drawn from a database. Microsoft Corporation has developed one such technology called Active Server Pages (ASP). Active Server Pages are web pages that contain embedded script (e.g., VBScript and JScript to name two of the more popular scripting languages). However, efficient ASP pages should contain a minimal amount of VBScript code. This is because the VBScript must be interpreted, which is slow compared to executing compiled code.
ASP is further capable of accessing additional program libraries in the form of ActiveX controls or dynamic link libraries (DLL's). This means that the functionality of ASP as a dynamic web content generator can be extended through the use of external libraries. For example, ASP can use open database connectivity (ODBC), open linking and embedding database (OLE DB), or other installed drivers to access information from a corporate datamart. Connectivity to these databases is not native to ASP, but comes as a result of ASP's ability to leverage external components and drivers.
All OLAP databases have an Application Programming Interface (API) that allows developers to interact with the database from programming environments such as C++ or Visual Basic. These APIS, however, are not optimized to work with ASP pages. Because ASP pages require large amounts of scripting code to interact directly with an API, the end result is very inefficient production and, consequently, delivery of web pages.
Furthermore, API calls to OLAP databases are typically very low-level, flat function calls. These calls generally do not represent the discrete components or objects in the OLAP Database (i.e., cubes, dimensions, subsets) that the ASP programmer and front-end user are accustomed to using.
One of the challenges of deploying applications via the world wide web is that web technology is stateless. Simply put, this means that each page that is delivered by the server is completely independent of any other pages delivered by the server, even to the same user. If the ASP programmer creates an object to support some features of the page, the life of the object is for the duration of the creation of the page only. Once the server has rendered the page the object is destroyed.
While ASP does provide some native building blocks for maintaining state (e.g. Session variables and Application variables, to name a few), storing large amounts of information about application state in these building blocks (e.g., storing large object variables) can consume large amounts of resources in any moderately sized web application. A web application must not only preserve state, but must preserve state without being a significant burden on server CPU resources.
What is desired, therefore, is an object model system for multidimensional applications which is comprehensive and intuitively structured, which is minimally inflatable and is expanded in memory only to the extent that a developer or user requests, which is capable of preserving application state without wasting large amounts of the web server's resources, and which provides shortcut methods to directly generate web content.